<template>
    <div class="demo-initForm">
        <StrategyForm :initForm="initForm" ref="strategy-form"></StrategyForm>
        <div class="footer">
            <el-button size="mini" @click="resetForm"> 重 置 </el-button>
            <el-button size="mini" type="primary" @click="handleSave">保 存 </el-button>
        </div>
    </div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import { StrategySettingDTO } from '../vo/password-strategy';
import API from '../api/password-strategy';
import StrategyForm from './strategy-form.vue';
@Component({ name: 'StrategySetting', components: { StrategyForm } })
export default class StrategySetting extends Vue {
    initForm: StrategySettingDTO = {
        pwdStrategyIsOpen: true,
        pwdRequirements: true,
        pwdStrategyModifyInterval: 0,
        pwdStrategyUserWarnDay: 0,
        firstLockCount: 10,
        firstLockTime: 30,
        firstLockUnit: 'minute',
        secondLockCount: 0,
        secondLockTime: 0,
        secondLockUnit: 'hour',
        thirdLockCount: 0,
        passwordRemCount: 0,
        loginTimeout: 0,
        loginTimeoutUnit: 'minute',
    };

    // mounted() {
    //     this.getPwdList();
    // }

    getPwdList() {
        API.queryPasswordStrategy()
            .then((res: any) => {
                this.initForm = res;
            })
            .catch(() => {});
    }

    // 保存
    handleSave() {
        // 必填选项处理  TODO
        // this.initForm = (this.$refs['strategy-form'] as any).ruleForm;
        API.updatePasswordStrategy(this.initForm).then((res: any) => {
            this.yh_message_success('保存成功');
        });
    }

    // 重置
    resetForm() {
        // TODO
        const XinitFrom = this.$refs['strategy-form'] as any;
        (XinitFrom.$refs['ruleForm'] as any).resetFields();
    }

    // pwdSetting: any[] = [
    //     // { paramKey: 'PWD_STRATEGY_IS_OPEN', paramInfo: '是否启用密码策略：', paramValue: '1' },
    //     // { paramKey: 'PWD_STRATEGY_MODIFY_INTERVAL', paramInfo: '密码有效期(天)：', paramValue: '5' },
    //     // { paramKey: 'PWD_STRATEGY_USER_WARN_DAY', paramInfo: '失效预警期(天)：', paramValue: '4' },
    //     // { paramKey: 'PWD_STRATEGY_ERROR_TIMES', paramInfo: '试错锁定次数：', paramValue: '5' },
    //     // { paramKey: 'LOGINOUT_TIMEOUT', paramInfo: '账号闲时自动退出(min)：', paramValue: '0' },
    //     // { paramKey: 'PWD_STRATEGY_USER_LOCK_TIME', paramInfo: '用户锁定时间(min)：', paramValue: '1' },
    //     { paramKey: 'pwdStrategyIsOpen', paramInfo: '是否启用以下密码策略：', paramValue: '' },
    //     { paramKey: 'pwdRequirements', paramInfo: '密码必须复合复杂性要求', paramValue: '' },
    //     // *在更改或创建密码时执行复杂度要求：密码长度限定为8-16位,且须同时包含数字(0-9)、大写字母(A -Z)、小写字母(a-z)、特殊字符(例如 ：!、$、#、%)
    //     { paramKey: 'pwdStrategyModifyInterval', paramInfo: '密码有效期(天)：', paramValue: '' },
    //     //  *密码到期前需修改密码,密码到期后无法登录系统
    //     { paramKey: 'pwdStrategyUserWarnDay', paramInfo: '失效预警期(天)：', paramValue: '' },
    //     // *密码会在过期前的多少天给出相应提示
    //     { paramKey: 'pwdStrategyErrorTimes', paramInfo: '试错锁定次数：', paramValue: '' },
    //     // TODO  添加判断大小  数组形式？
    //     { paramKey: 'passwordRemCount', paramInfo: '密码历史记忆次数：', paramValue: '' },
    //     // *新密码不能与最近前（1-10的整数）次密码相同
    //     { paramKey: 'loginTimeout', paramInfo: '账号闲时自动退出(min)：', paramValue: '' },
    //     // *用户登录系统后，在相应时长内未进行任何操作，系统将自动退出
    // ];
}
</script>
<style lang="scss" scoped>
.demo-initForm {
    padding: 20px 60px;
    color: #575757;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.footer {
    text-align: right;
}
</style>
